Skip to content

feat: implement image optimization task manager queue and concurrency…#682

Merged
RUKAYAT-CODER merged 5 commits into
rinafcode:mainfrom
Jess52487:feature/image-optimization-task-management
Jun 25, 2026
Merged

feat: implement image optimization task manager queue and concurrency…#682
RUKAYAT-CODER merged 5 commits into
rinafcode:mainfrom
Jess52487:feature/image-optimization-task-management

Conversation

@Jess52487

Copy link
Copy Markdown
Contributor

closes #487

Summary

This PR implements a comprehensive client-side Task Management system for Image Optimization in the Form Validation library. It resolves performance issues and UI freezing during batch image uploads by introducing a concurrency-limited task queue, status/progress tracking, and cancellation capabilities.

Changes Made

  1. ImageOptimizationTaskManager (src/form-management/validation/image-optimization-task-manager.ts) [NEW]:
    • Introduced a task manager handling FIFO scheduling, concurrency limit constraints (maxConcurrentTasks), state tracking (pending, processing, completed, failed, cancelled), and events callback subscriptions.
    • Provided standard Promise-based APIs (waitForTask and waitForAll) to await task completion.
    • Implemented individual task cancellation and bulk cancellation (cancelAll).
  2. optimizeImage (src/form-management/validation/image-optimizer.ts):
    • Added an optional onProgress callback to ImageOptimizationOptions.
    • Propagated progress callbacks during file reading (30%), image load (60%), and canvas toBlob generation (100%).
  3. ValidationEngineImpl (src/form-management/validation/validation-engine.ts):
    • Integrated the ImageOptimizationTaskManager instance into the validation engine.
    • Updated the validateImageOptimize rule runner to enqueue and wait for optimization tasks via the task manager.
  4. index.ts (src/form-management/validation/index.ts):
    • Exported ImageOptimizationTaskManager and its related types.
  5. image-optimization.md (src/form-management/validation/image-optimization.md):
    • Updated features list and added a detailed usage guide for the task manager.

Testing & Verification

A new test suite image-optimization-task-manager.test.ts was created to verify all core task management functionalities:

  • Concurrency limit compliance.
  • Status/progress transition callback triggers.
  • Task cancellation behavior (pending vs processing).
  • Promise resolution/rejections.
  • Error handling on execution failures.

@drips-wave

drips-wave Bot commented Jun 25, 2026

Copy link
Copy Markdown

@Jess52487 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@RUKAYAT-CODER

RUKAYAT-CODER commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Kindly pull from the main before pushing, it should fix the workflow failure.
Resolve conflict

@Jess52487
Jess52487 force-pushed the feature/image-optimization-task-management branch from 39082e7 to b0de863 Compare June 25, 2026 11:44
@RUKAYAT-CODER

Copy link
Copy Markdown
Contributor

Thank you for contributing to the project

@RUKAYAT-CODER
RUKAYAT-CODER merged commit 2e2d2eb into rinafcode:main Jun 25, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

performance Image Optimization : Task Management

2 participants